package com.delivery.www.service.ServiceImpl;

import com.delivery.www.dao.StoreDao;
import com.delivery.www.po.Store;
import com.delivery.www.constant.Constants;
import com.delivery.www.dao.DaoImpl.StoreDaoImpl;
import com.delivery.www.service.StoreService;

import java.util.List;

/**
 * @author 12970
 */
public class StoreServiceImpl implements StoreService {
    private final StoreDao storeDao = new StoreDaoImpl();

    @Override
    public String createStore(String storeName, int userId, String introduce) {
        List<Store> stores = storeDao.getStore();
        if (storeName == null || userId <= 0 || introduce == null) {
            return "error";
        } else {
            for (Store store : stores) {
                if (store.getStoreName().equals(storeName)) {
                    return "exist";
                }
            }
            if (storeDao.createStore(storeName, userId, 0, 0, introduce, 0, 0, Constants.ZERO, 0) > 0) {
                return "ok";
            } else {
                return "error";
            }
        }
    }

    @Override
    public List<Store> getAllStore(String storeName, int currentPageNo, int pageSize) {
        if (currentPageNo <= 0 || pageSize <= 0) {
            return null;
        } else {
            return storeDao.getAllStore(storeName, currentPageNo, pageSize);
        }
    }

    @Override
    public Store getOwnStore(int userId) {
        if (userId <= 0) {
            return null;
        } else {
            return storeDao.getOwnStore(userId);
        }
    }

    @Override
    public boolean updateStoreName(int storeId, String value) {
        if (storeId <= 0 || value == null) {
            return false;
        } else {
            return storeDao.updateStoreName(storeId, value) > 0;
        }
    }

    @Override
    public boolean updateStoreIntroduce(int storeId, String value) {
        if (storeId <= 0 || value == null) {
            return false;
        } else {
            return storeDao.updateStoreIntroduce(storeId, value) > 0;
        }
    }

    @Override
    public List<Store> getAuditStore() {
        return storeDao.getAuditStore();
    }

    @Override
    public List<Store> getStore() {
        return storeDao.getStore();
    }

    @Override
    public boolean modifyStatus(int storeId, int status) {
        if (storeId <= 0 || status < 0) {
            return false;
        } else {
            return storeDao.modifyStatus(storeId, status) > 0;
        }
    }

    @Override
    public int getStoreCount(String storeName) {
        return storeDao.getStoreCount(storeName);
    }
}
